package q125_isPalindrome;

public class Solution_2 {
    public static void main(String[] args) {

    }

    /**
     * 标准的双指针
     * @param s
     * @return
     */
    public boolean isPalindrome(String s) {
        int l = 0, r = s.length() - 1;
        while(l < r){

            // 直接判断字符是不是数字或者字母的方法Character.isLetterOrDigit(s.charAt(left))

            while(!((s.charAt(r) <= 'Z' && s.charAt(r) >= 'A') || (s.charAt(r) <= 'z' && s.charAt(r) >= 'a') || (s.charAt(r) <= '0' && s.charAt(r) >= '9')) && l < r){
                r--;
            }
            while(!((s.charAt(l) <= 'Z' && s.charAt(l) >= 'A') || (s.charAt(l) <= 'z' && s.charAt(l) >= 'a') || (s.charAt(l) <= '0' && s.charAt(l) >= '9')) && l < r) {
                l++;
            }
            if (Character.toLowerCase(s.charAt(l)) != Character.toLowerCase(s.charAt(r))) {
                return false;
            }
            l++;
            r--;
        }

        return true;
    }
}
